home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 2 / Meeting Pearls Vol. II (1995)(GTI - Schatztruhe)[!].iso / Pearls / dev / GUI / Triton / Programmer / gcc / os-include / inline / triton.h
C/C++ Source or Header  |  1994-07-14  |  8KB  |  279 lines

  1. #ifndef _INLINE_TRITON_H
  2. #define _INLINE_TRITON_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL extern struct Library * TritonBase;
  11. #endif
  12. #ifndef BASE_PAR_DECL
  13. #define BASE_PAR_DECL
  14. #define BASE_PAR_DECL0 void
  15. #endif
  16. #ifndef BASE_NAME
  17. #define BASE_NAME TritonBase
  18. #endif
  19.  
  20. static __inline ULONG 
  21. TR_AutoRequest (BASE_PAR_DECL struct TR_App *app,struct TR_Project *lockproject,struct TagItem *wintags)
  22. {
  23.   BASE_EXT_DECL
  24.   register ULONG  _res  __asm("d0");
  25.   register struct Library *a6 __asm("a6") = BASE_NAME;
  26.   register struct TR_App *a1 __asm("a1") = app;
  27.   register struct TR_Project *a0 __asm("a0") = lockproject;
  28.   register struct TagItem *a2 __asm("a2") = wintags;
  29.   __asm __volatile ("jsr a6@(-0x54)"
  30.   : "=r" (_res)
  31.   : "r" (a6), "r" (a1), "r" (a0), "r" (a2)
  32.   : "a0","a1","a2","d0","d1");
  33.   *(char *)a1 = *(char *)a1;  *(char *)a0 = *(char *)a0;  *(char *)a2 = *(char *)a2;
  34.   return _res;
  35. }
  36. static __inline VOID 
  37. TR_CloseProject (BASE_PAR_DECL struct TR_Project * project)
  38. {
  39.   BASE_EXT_DECL
  40.   register struct Library *a6 __asm("a6") = BASE_NAME;
  41.   register struct TR_Project * a0 __asm("a0") = project;
  42.   __asm __volatile ("jsr a6@(-0x24)"
  43.   : /* no output */
  44.   : "r" (a6), "r" (a0)
  45.   : "a0","a1","d0","d1");
  46.   *(char *)a0 = *(char *)a0;
  47. }
  48. static __inline VOID 
  49. TR_CloseWindowSafely (BASE_PAR_DECL struct Window *window)
  50. {
  51.   BASE_EXT_DECL
  52.   register struct Library *a6 __asm("a6") = BASE_NAME;
  53.   register struct Window *a0 __asm("a0") = window;
  54.   __asm __volatile ("jsr a6@(-0x7e)"
  55.   : /* no output */
  56.   : "r" (a6), "r" (a0)
  57.   : "a0","a1","d0","d1");
  58.   *(char *)a0 = *(char *)a0;
  59. }
  60. static __inline struct TR_App * 
  61. TR_CreateApp (BASE_PAR_DECL struct TagItem *apptags)
  62. {
  63.   BASE_EXT_DECL
  64.   register struct TR_App *  _res  __asm("d0");
  65.   register struct Library *a6 __asm("a6") = BASE_NAME;
  66.   register struct TagItem *a1 __asm("a1") = apptags;
  67.   __asm __volatile ("jsr a6@(-0x60)"
  68.   : "=r" (_res)
  69.   : "r" (a6), "r" (a1)
  70.   : "a0","a1","d0","d1");
  71.   *(char *)a1 = *(char *)a1;
  72.   return _res;
  73. }
  74. static __inline VOID 
  75. TR_DeleteApp (BASE_PAR_DECL struct TR_App *app)
  76. {
  77.   BASE_EXT_DECL
  78.   register struct Library *a6 __asm("a6") = BASE_NAME;
  79.   register struct TR_App *a1 __asm("a1") = app;
  80.   __asm __volatile ("jsr a6@(-0x66)"
  81.   : /* no output */
  82.   : "r" (a6), "r" (a1)
  83.   : "a0","a1","d0","d1");
  84.   *(char *)a1 = *(char *)a1;
  85. }
  86. static __inline ULONG 
  87. TR_EasyRequest (BASE_PAR_DECL struct TR_App *app,STRPTR bodyfmt,STRPTR gadfmt,struct TagItem *taglist)
  88. {
  89.   BASE_EXT_DECL
  90.   register ULONG  _res  __asm("d0");
  91.   register struct Library *a6 __asm("a6") = BASE_NAME;
  92.   register struct TR_App *a1 __asm("a1") = app;
  93.   register STRPTR a2 __asm("a2") = bodyfmt;
  94.   register STRPTR a3 __asm("a3") = gadfmt;
  95.   register struct TagItem *a0 __asm("a0") = taglist;
  96.   __asm __volatile ("jsr a6@(-0x5a)"
  97.   : "=r" (_res)
  98.   : "r" (a6), "r" (a1), "r" (a2), "r" (a3), "r" (a0)
  99.   : "a0","a1","a2","a3","d0","d1");
  100.   *(char *)a1 = *(char *)a1;  *(char *)a2 = *(char *)a2;  *(char *)a3 = *(char *)a3;  *(char *)a0 = *(char *)a0;
  101.   return _res;
  102. }
  103. static __inline LONG 
  104. TR_FirstOccurance (BASE_PAR_DECL UBYTE ch,STRPTR str)
  105. {
  106.   BASE_EXT_DECL
  107.   register LONG  _res  __asm("d0");
  108.   register struct Library *a6 __asm("a6") = BASE_NAME;
  109.   register UBYTE d0 __asm("d0") = ch;
  110.   register STRPTR a0 __asm("a0") = str;
  111.   __asm __volatile ("jsr a6@(-0x2a)"
  112.   : "=r" (_res)
  113.   : "r" (a6), "r" (d0), "r" (a0)
  114.   : "a0","a1","d0","d1");
  115.   *(char *)a0 = *(char *)a0;
  116.   return _res;
  117. }
  118. static __inline ULONG 
  119. TR_GetAttribute (BASE_PAR_DECL struct TR_Project * project,ULONG id,ULONG attribute)
  120. {
  121.   BASE_EXT_DECL
  122.   register ULONG  _res  __asm("d0");
  123.   register struct Library *a6 __asm("a6") = BASE_NAME;
  124.   register struct TR_Project * a0 __asm("a0") = project;
  125.   register ULONG d0 __asm("d0") = id;
  126.   register ULONG d1 __asm("d1") = attribute;
  127.   __asm __volatile ("jsr a6@(-0x42)"
  128.   : "=r" (_res)
  129.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  130.   : "a0","a1","d0","d1");
  131.   *(char *)a0 = *(char *)a0;
  132.   return _res;
  133. }
  134. static __inline STRPTR 
  135. TR_GetErrorString (BASE_PAR_DECL UWORD num)
  136. {
  137.   BASE_EXT_DECL
  138.   register STRPTR  _res  __asm("d0");
  139.   register struct Library *a6 __asm("a6") = BASE_NAME;
  140.   register UWORD d0 __asm("d0") = num;
  141.   __asm __volatile ("jsr a6@(-0x36)"
  142.   : "=r" (_res)
  143.   : "r" (a6), "r" (d0)
  144.   : "a0","a1","d0","d1");
  145.   return _res;
  146. }
  147. static __inline UWORD 
  148. TR_GetLastError (BASE_PAR_DECL struct TR_App *app)
  149. {
  150.   BASE_EXT_DECL
  151.   register UWORD  _res  __asm("d0");
  152.   register struct Library *a6 __asm("a6") = BASE_NAME;
  153.   register struct TR_App *a1 __asm("a1") = app;
  154.   __asm __volatile ("jsr a6@(-0x84)"
  155.   : "=r" (_res)
  156.   : "r" (a6), "r" (a1)
  157.   : "a0","a1","d0","d1");
  158.   *(char *)a1 = *(char *)a1;
  159.   return _res;
  160. }
  161. static __inline struct TR_Message * 
  162. TR_GetMsg (BASE_PAR_DECL struct TR_App *app)
  163. {
  164.   BASE_EXT_DECL
  165.   register struct TR_Message *  _res  __asm("d0");
  166.   register struct Library *a6 __asm("a6") = BASE_NAME;
  167.   register struct TR_App *a1 __asm("a1") = app;
  168.   __asm __volatile ("jsr a6@(-0x6c)"
  169.   : "=r" (_res)
  170.   : "r" (a6), "r" (a1)
  171.   : "a0","a1","d0","d1");
  172.   *(char *)a1 = *(char *)a1;
  173.   return _res;
  174. }
  175. static __inline VOID 
  176. TR_LockProject (BASE_PAR_DECL struct TR_Project *project)
  177. {
  178.   BASE_EXT_DECL
  179.   register struct Library *a6 __asm("a6") = BASE_NAME;
  180.   register struct TR_Project *a0 __asm("a0") = project;
  181.   __asm __volatile ("jsr a6@(-0x48)"
  182.   : /* no output */
  183.   : "r" (a6), "r" (a0)
  184.   : "a0","a1","d0","d1");
  185.   *(char *)a0 = *(char *)a0;
  186. }
  187. static __inline LONG 
  188. TR_NumOccurances (BASE_PAR_DECL UBYTE ch,STRPTR str)
  189. {
  190.   BASE_EXT_DECL
  191.   register LONG  _res  __asm("d0");
  192.   register struct Library *a6 __asm("a6") = BASE_NAME;
  193.   register UBYTE d0 __asm("d0") = ch;
  194.   register STRPTR a0 __asm("a0") = str;
  195.   __asm __volatile ("jsr a6@(-0x30)"
  196.   : "=r" (_res)
  197.   : "r" (a6), "r" (d0), "r" (a0)
  198.   : "a0","a1","d0","d1");
  199.   *(char *)a0 = *(char *)a0;
  200.   return _res;
  201. }
  202. static __inline struct TR_Project * 
  203. TR_OpenProject (BASE_PAR_DECL struct TR_App *app,struct TagItem * taglist)
  204. {
  205.   BASE_EXT_DECL
  206.   register struct TR_Project *  _res  __asm("d0");
  207.   register struct Library *a6 __asm("a6") = BASE_NAME;
  208.   register struct TR_App *a1 __asm("a1") = app;
  209.   register struct TagItem * a0 __asm("a0") = taglist;
  210.   __asm __volatile ("jsr a6@(-0x1e)"
  211.   : "=r" (_res)
  212.   : "r" (a6), "r" (a1), "r" (a0)
  213.   : "a0","a1","d0","d1");
  214.   *(char *)a1 = *(char *)a1;  *(char *)a0 = *(char *)a0;
  215.   return _res;
  216. }
  217. static __inline VOID 
  218. TR_ReplyMsg (BASE_PAR_DECL struct TR_Message *message)
  219. {
  220.   BASE_EXT_DECL
  221.   register struct Library *a6 __asm("a6") = BASE_NAME;
  222.   register struct TR_Message *a1 __asm("a1") = message;
  223.   __asm __volatile ("jsr a6@(-0x72)"
  224.   : /* no output */
  225.   : "r" (a6), "r" (a1)
  226.   : "a0","a1","d0","d1");
  227.   *(char *)a1 = *(char *)a1;
  228. }
  229. static __inline VOID 
  230. TR_SetAttribute (BASE_PAR_DECL struct TR_Project * project,ULONG id,ULONG attribute,ULONG value)
  231. {
  232.   BASE_EXT_DECL
  233.   register struct Library *a6 __asm("a6") = BASE_NAME;
  234.   register struct TR_Project * a0 __asm("a0") = project;
  235.   register ULONG d0 __asm("d0") = id;
  236.   register ULONG d1 __asm("d1") = attribute;
  237.   register ULONG d2 __asm("d2") = value;
  238.   __asm __volatile ("jsr a6@(-0x3c)"
  239.   : /* no output */
  240.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2)
  241.   : "a0","a1","d0","d1","d2");
  242.   *(char *)a0 = *(char *)a0;
  243. }
  244. static __inline VOID 
  245. TR_UnlockProject (BASE_PAR_DECL struct TR_Project *project)
  246. {
  247.   BASE_EXT_DECL
  248.   register struct Library *a6 __asm("a6") = BASE_NAME;
  249.   register struct TR_Project *a0 __asm("a0") = project;
  250.   __asm __volatile ("jsr a6@(-0x4e)"
  251.   : /* no output */
  252.   : "r" (a6), "r" (a0)
  253.   : "a0","a1","d0","d1");
  254.   *(char *)a0 = *(char *)a0;
  255. }
  256. static __inline ULONG 
  257. TR_Wait (BASE_PAR_DECL struct TR_App *app,ULONG otherbits)
  258. {
  259.   BASE_EXT_DECL
  260.   register ULONG  _res  __asm("d0");
  261.   register struct Library *a6 __asm("a6") = BASE_NAME;
  262.   register struct TR_App *a1 __asm("a1") = app;
  263.   register ULONG d0 __asm("d0") = otherbits;
  264.   __asm __volatile ("jsr a6@(-0x78)"
  265.   : "=r" (_res)
  266.   : "r" (a6), "r" (a1), "r" (d0)
  267.   : "a0","a1","d0","d1");
  268.   *(char *)a1 = *(char *)a1;
  269.   return _res;
  270. }
  271. #undef BASE_EXT_DECL
  272. #undef BASE_PAR_DECL
  273. #undef BASE_PAR_DECL0
  274. #undef BASE_NAME
  275.  
  276. __END_DECLS
  277.  
  278. #endif /* _INLINE_TRITON_H */
  279.